#include <iostream>
#include <vector>
#include <climits>
using namespace std;
using ll=long long;

int main() {

	int n,k;
	cin>>n>>k;
	vector<ll> vecArr(n+1);
	vector<vector<ll>> dp(n+1,vector<ll>(k,LLONG_MIN));
	for(int i=1;i<=n;++i){
		cin>>vecArr[i];
	}
	dp[0][0]=0;
	for(int i=1;i<=n;++i){
		for(int j=0;j<k;++j){
			if(dp[i-1][j]==LLONG_MIN){
				continue;
			}
			dp[i][j]=max(dp[i-1][j],dp[i][j]);
			int nIdx=(j+vecArr[i])%k;
			dp[i][nIdx]=max(dp[i][nIdx],dp[i-1][j]+vecArr[i]);
		}
	}
	if(dp[n][0]==0){
		cout<<-1<<endl;
	}
	else{
		cout<<dp[n][0]<<endl;
	}
	
	return 0;
}
